home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
SGI Developer Toolbox 6.1
/
SGI Developer Toolbox 6.1 - Disc 4.iso
/
public
/
TeX
/
tex_for_sgi.txt
< prev
Wrap
Text File
|
1994-08-01
|
44KB
|
1,340 lines
TeX and Silicon Graphics.
This is an installation procedure of TeX3.14, dvips5.47 and xdvi on Silicon
Graphics 4D70GT under IRIX 3.3.1. I got sources by anonymous ftp, but you
can get them on tape from TeX Users Group. Inquire at:
TUG@math.ams.com
It is based on the Installation notes by Randolph J. Herber from Fermi Labs
(HERBER@fnala.fnal.gov, herber@fnalf.fnal.gov, rjh@yclept.chi.il.us) which
were posted on comp.sys.sgi and his comments on info-iris list.
All the good things come from him. However, I did change some things,
and faults are mine. I could not succeed in making bibtex. There is some
problem with compiler or BibTeX or mine. Since I do not use bibtex,
I do not care. If you know however how to make it, I would be glad to hear,
since I would like to have complete TeX. This file was made as notes as I
was progressing, without paying attention to style, etc. I did not read it
after I wrote it. But maybe you will find it usefull, anyhow.
Jan Labanowski
Ohio Supercomputer Center
jkl@osc.edu
script added to extract makefiles, emplant, etc. from
tex_for_sgi file. thus saving time and energy. copy of makeTeX at end.
The sources of TeX3.14 were taken from anonymous ftp on byron.u.washington.edu
[128.95.48.32] as follows:
1. Login as root
# mkdir /usr/distribution
# cd /usr/distribution
# ftp byron.u.washington.edu
Login: anonymous
Password: e-mail.address
ftp> cd pub/unixtex
ftp> ls -l
total 19656
-rw-r--r-- 1 root system 5328 May 13 10:17 00README.ftp
-rw-r--r-- 1 root system 500000 May 8 14:29 DVIware.tar.Zaa
-rw-r--r-- 1 root system 500000 May 8 14:29 DVIware.tar.Zab
-rw-r--r-- 1 root system 500000 May 8 14:29 DVIware.tar.Zac
-rw-r--r-- 1 root system 500000 May 8 14:29 DVIware.tar.Zad
-rw-r--r-- 1 root system 500000 May 8 14:29 DVIware.tar.Zae
-rw-r--r-- 1 root system 292925 May 8 14:29 DVIware.tar.Zaf
-rw-r--r-- 1 root system 500000 May 8 14:29 LaTeXfonts.tar.Zaa
-rw-r--r-- 1 root system 500000 May 8 14:29 LaTeXfonts.tar.Zab
-rw-r--r-- 1 root system 500000 May 8 14:29 LaTeXfonts.tar.Zac
-rw-r--r-- 1 root system 500000 May 8 14:29 LaTeXfonts.tar.Zad
-rw-r--r-- 1 root system 500000 May 8 14:29 LaTeXfonts.tar.Zae
-rw-r--r-- 1 root system 66658 May 8 14:29 LaTeXfonts.tar.Zaf
-rw-r--r-- 1 root system 1679 May 8 14:16 NO_WARRANTY
-rw-r--r-- 1 root system 39582 May 8 14:16 README.TeX3.14
-rw-r--r-- 1 root system 500000 May 8 14:38 TeX3.14.tar.Zaa
-rw-r--r-- 1 root system 500000 May 8 14:38 TeX3.14.tar.Zab
-rw-r--r-- 1 root system 500000 May 8 14:38 TeX3.14.tar.Zac
-rw-r--r-- 1 root system 500000 May 8 14:38 TeX3.14.tar.Zad
-rw-r--r-- 1 root system 500000 May 8 14:38 TeX3.14.tar.Zae
-rw-r--r-- 1 root system 500000 May 8 14:38 TeX3.14.tar.Zaf
-rw-r--r-- 1 root system 500000 May 8 14:38 TeX3.14.tar.Zag
-rw-r--r-- 1 root system 500000 May 8 14:38 TeX3.14.tar.Zah
-rw-r--r-- 1 root system 500000 May 8 14:38 TeX3.14.tar.Zai
-rw-r--r-- 1 root system 500000 May 8 14:38 TeX3.14.tar.Zaj
-rw-r--r-- 1 root system 500000 May 8 14:38 TeX3.14.tar.Zak
-rw-r--r-- 1 root system 500000 May 8 14:38 TeX3.14.tar.Zal
-rw-r--r-- 1 root system 500000 May 8 14:38 TeX3.14.tar.Zam
-rw-r--r-- 1 root system 500000 May 8 14:38 TeX3.14.tar.Zan
-rw-r--r-- 1 root system 500000 May 8 14:38 TeX3.14.tar.Zao
-rw-r--r-- 1 root system 500000 May 8 14:38 TeX3.14.tar.Zap
-rw-r--r-- 1 root system 500000 May 8 14:38 TeX3.14.tar.Zaq
-rw-r--r-- 1 root system 75817 May 8 14:38 TeX3.14.tar.Zar
-rw-r--r-- 1 root system 153685 May 8 14:31 Unsupported.tar.Z
-rw-r--r-- 1 root system 500000 May 8 14:33 ams.tar.Zaa
-rw-r--r-- 1 root system 500000 May 8 14:33 ams.tar.Zab
-rw-r--r-- 1 root system 500000 May 8 14:33 ams.tar.Zac
-rw-r--r-- 1 root system 500000 May 8 14:33 ams.tar.Zad
-rw-r--r-- 1 root system 86695 May 8 14:33 ams.tar.Zae
-rw-r--r-- 1 root system 500000 May 8 14:26 babel.tar.Zaa
-rw-r--r-- 1 root system 208936 May 8 14:26 babel.tar.Zab
-rw-r--r-- 1 root system 20530 May 8 14:35 bsdtar.tar.Z
-rw-r--r-- 1 root system 500000 May 8 14:37 cmfonts.tar.Zaa
-rw-r--r-- 1 root system 500000 May 8 14:37 cmfonts.tar.Zab
-rw-r--r-- 1 root system 500000 May 8 14:37 cmfonts.tar.Zac
-rw-r--r-- 1 root system 500000 May 8 14:37 cmfonts.tar.Zad
-rw-r--r-- 1 root system 252938 May 8 14:37 cmfonts.tar.Zae
-rw-r--r-- 1 root system 92160 May 8 14:38 compress.tar
-rw-r--r-- 1 root system 70593 May 8 14:38 patch.tar.Z
-rw-r--r-- 1 root system 397543 May 8 14:38 utilityfonts.tar.Z
ftp> binary
ftp> prompt
ftp> mget *
you will get all these files - you need some disk space.
ftp> quit
Then I ftp-ed to labrea.stanford.edu [36.8.0.47]
Name: anonymous
Password: e-mail address
ftp> cd pub
ftp> binary
ftp> get dvips547.tar.Z
ftp> get dvipsafm.tar.Z
ftp> get dvipslib.tar.Z
ftp> quit
Then I got file modes.mf from anonymous ftp:
ftp.cs.umb.edu [192.12.26.23]
which is in: pub/tex/modes.mf
==========================
Then the files were uncompressed and untared as:
zcat DVIware.tar.Za* | tar xvof -
zcat TeX3.14.tar.Za* | tar xvof -
zcat LaTeXfonts.tar.Za* | tar xvof -
zcat cmfonts.tar.Za* | tar xvof -
zcat utilityfonts.tar.Z | tar xvof -
zcat dvips547.tar.Z | tar xvof -
zcat dvipsafm.tar.Z | tar xvof -
zcat dvipslib.tar.Z | tar xvof -
Then I read all the README files and other instalation files in all the
directories (it takes a few days).
Then: (assuming we are in: /usr/distribution)
1) cd TeX3.14
2) cp Makefile-dist Makefile
3) cp site.h-dist site.h
4) cp makefile some.makefile (there was some junk makefile in the distrib)
5) Then I created small script in /usr/distribution and named it emplant
------------------------- cut here -----------
#!/bin/sh
cp $4 $5
chmod $1 $5
chgrp $3 $5
chown $2 $5
------------------------- till here ----------------
6) chmod 755 emplant (this is a simple install program)
7) I edited Makefile to be:
----------------------------- Makefile starts --------------
# Overall Makefile for making TeX, Metafont, and friends, using WEB to C.
# TeX 3.14 + Metafont 2.7 + web2c b.
#
version=5.84b
# Directory that site.h is in relative to subdirectories, i.e., `..'
# means the directory containing this Makefile.
SITEDIR=..
# Default C compiler.
#CC=gcc
CC=cc
# Default flags to give the C compiler. (Don't define CFLAGS directly.)
#OPT=-g -O
OPT=-g -O
# Default flags to give to the loader.
LDFLAGS=
# Default libraries with which to link (libraries for the Metafont
# support are specified separately).
LOADLIBES=
# Make sure we use the sh. If your sh is broken, you might try bash,
# the GNU replacement.
SHELL=/bin/sh
# The yacc program to use on web2c/web2c.yacc.
#YACC=bison -y
YACC=yacc
# The lex program to use on web2c/web2c.lex.
LEX=lex
# -ll for lex, -lfl for flex.
LEXLIB=-ll
# Need -D_POSIX_SOURCE here, perhaps, if on a POSIX system.
LEXCFLAGS=
# How to make a link.
LN=ln -s
# Support libraries for Metafont.
x10lib=-lX
x11lib=-lXt -lX11
sunlib=-lsuntool -lsunwindow -lpixrect
# This line should select the libraries that match what you said in site.h.
wlibs=$(x11lib)
# These lines define the format and base files that `make fmts' and
# `make bases' will try to make, and `make install' will try to install.
# See README.W2C for a brief description of each of these formats.
#formats=tex.fmt
formats=tex.fmt latex.fmt slitex.fmt
#amstex.fmt amslatex.fmt picplus.fmt texinfo.fmt
# etex.fmt latex.fmt slitex.fmt \
# amstex.fmt amslatex.fmt picplus.fmt texinfo.fmt
#bases=mf.base
bases=mf.base cmmf.base
# cmmf.base
# The name of the file that defines your local devices, for use with
# Metafont. (Only relevant during `make bases'.) I urge you to get the
# file `modes.mf', which defines all known modes, plus useful
# definitions for all fonts. It's available from ftp.cs.umb.edu
# [192.12.26.23] as pub/tex/modes.mf, among other places.
localmodes=modes
# You may need INSTALL=cp on system V, if you don't have GNU install.
# Or you can install the programs by hand.
# $(fileinstall) is used for the format and base files, man files, and
# other non-executables, and $(programinstall) is used for
# the executables.
#INSTALL=install -g tex -c
#fileinstall=$(INSTALL) -m 664
#proginstall=$(INSTALL) -m 775 -s
INSTALL=/usr/distribution/TeX3.14/emplant
fileinstall=$(INSTALL) 664 bin sys
proginstall=$(INSTALL) 755 bin sys
# These pathnames are used to customize the manual pages with local
# directory names; some of them are used in `make install'. They should
# match the system directories in the paths defined in `./site.h'.
bindir=/usr/local/bin
manext=l
mandir=/usr/man/u_man/man$(manext)
texlibdir=/usr/local/lib/tex
texpooldir=$(texlibdir)
#texinputdir=$(texlibdir)/macros
texinputdir=$(texlibdir)/inputs
#texfontdir=$(texlibdir)/fonts
texfontdir=$(texlibdir)/fonts/tfm
formatdir=$(texlibdir)/formats
mflibdir=/usr/local/lib/mf
mfpooldir=$(mflibdir)
#mfinputdir=$(mflibdir)/macros
mfinputdir=$(mflibdir)/inputs
basedir=$(mflibdir)/bases
# Where the Computer Modern sources are.
# (The man pages claim that you have installed the standard utility
# sources, like `grayf.mf' and `expr.mf', somewhere in $(mfinputdir).)
#cmsources=/usr/local/src/other/TeX+MF/typefaces/cm
cmsources=/usr/local/lib/mf/inputs
default: all
# Stuff below here probably doesn't need to be changed.
#
#alldirs=web tex mf texware mfware fontutil bibtex dviutil
alldirs=web tex mf texware mfware fontutil dviutil
triptrapdirs=tex texware mf mfware
makeargs=SITEDIR="$(SITEDIR)" CC="$(CC)" OPT="$(OPT)" \
SHELL="$(SHELL)" LDFLAGS="$(LDFLAGS)" LOADLIBES="$(LOADLIBES)" wlibs="$(wlibs)"
web2c=web2c
web2cprograms=$(web2c)/web2c $(web2c)/regfix $(web2c)/splitup \
$(web2c)/fixwrites
commonsources=common/alloca.c common/extra.c common/main.c common/endian.c
triptrap: stamp-tangle stamp-common
for name in $(triptrapdirs); \
do \
(cd $${name}; make $(makeargs) LN="$(LN)" triptrap); \
done
run-triptrap: run-trip run-trap
clean-triptrap:
cd tex; make veryclean
cd mf; make veryclean
all: stamp-web2c stamp-common
for name in $(alldirs); \
do \
(cd $${name}; echo $${name}; make $(makeargs) all); \
done
TeX: stamp-web2c stamp-tangle stamp-common
cd tex; make $(makeargs) all
BibTeX: stamp-web2c stamp-tangle stamp-common
cd bibtex; make $(makeargs) all
run-trip:
cd tex; make run-trip
MF: stamp-web2c stamp-tangle stamp-common
cd mf; make $(makeargs) all
run-trap:
cd mf; make run-trap
# The targets below must be up to date for anything to be made.
#
stamp-web2c:
cd $(web2c); \
make $(makeargs) YACC="$(YACC)" LEX="$(LEX)" LEXLIB="$(LEXLIB)" all
touch stamp-web2c
stamp-common: $(commonsources)
cd common; make $(makeargs) all
touch stamp-common
stamp-tangle: stamp-web2c stamp-common
cd web; make $(makeargs) tangle
touch stamp-tangle
manpages:
cd man; make SITEDIR=$(SITEDIR) \
bindir=$(bindir) texlibdir=$(texlibdir) \
texpooldir=$(texpooldir) formatdir=$(formatdir) \
texinputdir=$(texinputdir) texfontdir=$(texfontdir) \
mflibdir=$(mflibdir) mfpooldir=$(mfpooldir) \
basedir=$(basedir) mfinputdir=$(mfinputdir) \
cmsources=$(cmsources) \
all
bases: stamp-bases
stamp-bases:
cd mf; MFPOOL=.; export MFPOOL; \
make bases="$(bases)" localmodes="$(localmodes)" bases
touch stamp-bases
formats: stamp-formats
stamp-formats:
cd tex; TEXPOOL=.; export TEXPOOL; make formats="$(formats)" fmts
touch stamp-formats
# Installation targets.
#
install-manpages:
cd man; make mandir=$(mandir) INSTALL="$(fileinstall)" \
SITEDIR="$(SITEDIR)" manext=$(manext) install
install:
if test -d $(bindir); then exit 0; else mkdir $(bindir); fi
$(proginstall) tex/initex $(bindir)/initex
$(proginstall) tex/virtex $(bindir)/virtex
$(proginstall) mf/inimf $(bindir)/inimf
$(proginstall) mf/virmf $(bindir)/virmf
$(proginstall) web/tangle $(bindir)/tangle
$(proginstall) web/weave $(bindir)/weave
$(proginstall) texware/dvitype $(bindir)/dvitype
$(proginstall) texware/pltotf $(bindir)/pltotf
$(proginstall) texware/tftopl $(bindir)/tftopl
$(proginstall) mfware/gftodvi $(bindir)/gftodvi
$(proginstall) mfware/gftopk $(bindir)/gftopk
$(proginstall) mfware/gftype $(bindir)/gftype
$(proginstall) mfware/mft $(bindir)/mft
$(proginstall) fontutil/pktogf $(bindir)/pktogf
$(proginstall) fontutil/pktype $(bindir)/pktype
$(proginstall) fontutil/vftovp $(bindir)/vftovp
$(proginstall) fontutil/vptovf $(bindir)/vptovf
$(proginstall) bibtex/bibtex $(bindir)/bibtex
$(proginstall) dviutil/dvicopy $(bindir)/dvicopy
if test -d $(texpooldir); then exit 0; else mkdir $(texpooldir); fi
-if test -s tex/tex.pool; \
then (cd tex; $(fileinstall) tex.pool $(texpooldir) ); fi
if test -d $(mfpooldir); then exit 0; else mkdir $(mfpooldir); fi
-if test -s mf/mf.pool; \
then (cd mf; $(fileinstall) mf.pool $(mfpooldir) ); fi
install-formats: stamp-formats
if test -d $(formatdir); then exit 0; else -mkdir $(formatdir); fi
for f in $(formats); \
do \
rm -f $(bindir)/`basename $$f .fmt`; \
ln $(bindir)/virtex $(bindir)/`basename $$f .fmt`; \
$(fileinstall) tex/$$f $(formatdir)/$$f; \
done
cd $(formatdir); rm -f plain.fmt; ln tex.fmt plain.fmt
install-bases: stamp-bases
if test -d $(basedir); then exit 0; else -mkdir $(basedir); fi
for f in $(bases); \
do \
rm -f $(bindir)/`basename $$f .base`; \
ln $(bindir)/virmf $(bindir)/`basename $$f .base`; \
$(fileinstall) mf/$$f $(basedir); \
done
cd $(basedir); rm -f plain.base; ln mf.base plain.base
# Need GNU tar for this.
#
web2c-dist: web/tangleboot.pas
@echo -n "check -linet;tangleboot"
@echo "big{tex,mf.ch; trie change"
mv ChangeLog ChangeLog.W2C
cd ..; \
find src-$(version) \! -name '*.web' -type f -print > /tmp/files; \
tar czfT web2c-$(version).tar.Z /tmp/files; \
ls -ld web*
mv ChangeLog.W2C ChangeLog
web-dist: web/tangleboot.pas
cd ..; \
find src-$(version) -name '*.web' -print > /tmp/webfest; \
tar czfT web-$(version).tar.Z /tmp/webfest; \
ls -ld web*
web/tangleboot.pas:
cd web; make tangle.p; cp tangle.p tangleboot.pas; make veryclean
clean:
rm -f stamp-*
for name in web2c common $(alldirs); \
do \
(cd $${name}; make clean); \
done
veryclean:
rm -f stamp-*
for name in web2c common man $(alldirs); \
do \
(cd $${name}; make veryclean); \
done
rm -f \#*\# *~ *.bak *.ckp core
.PHONY: default triptrap run-triptrap clean-triptrap all TeX run-trip \
MF run-trap manpages bases formats install-manpages install \
install-formats install-bases web2c-dist web-dist clean veryclean
----------------------------- Makefile ends --------------
8) I edited site.h to be:
----------------------------- site.h starts ---------
/* Master configuration file for WEB to C. Almost all the definitions
are wrapped with #ifndef's, so that you can override them from the
command line, if you want to. */
#ifndef __WEB2C_SITE_H
#define __WEB2C_SITE_H
/* Define if you're on an AIX-based system. */
#ifndef AIX
#undef AIX
#endif
/* Define if you're on 4.2 or 4.3 BSD-based system. */
#ifndef BSD
#undef BSD
#endif
/* Define if you're on an HP-based system (also define SYSV). */
#ifndef HP
#undef HP
#endif
/* Define if you're on a POSIX-based system. */
#ifndef _POSIX_SOURCE
#undef _POSIX_SOURCE
#endif
/* Define if you're on System V-based system. */
#ifndef SYSV
#define SYSV
#endif
/* Define this if the system will be compiled with an ANSI C compiler,
and never with a non-ANSI compiler. It changes web2c so that it
produces ANSI C as its output. This is a perhaps good idea, but you
don't necessarily gain anything in the production programs by doing
it. If you do define this, you must also have a declaration for
sprintf(3) in <stdio.h>. */
#ifndef ANSI
#undef ANSI
#endif
/* Default editor command string: `%d' expands to the line number where
TeX or Metafont found an error and `%s' expands to the name of the
file. The environment variables TEXEDIT and MFEDIT override this. */
#define EDITOR "/usr/local/bin/emacs +%d %s"
/* Define these according to your local setup. It doesn't hurt anything
to have `.' in all the paths, but since most users do not have their
own fonts, formats, or string pools, it only slows things down.
Do not put a leading or trailing colon in these paths, or double a
colon in the middle. That might lead to infinite recursion.
Also see TEXFONTS_SUBDIR et al., below. */
#define TEXFONTS ".:/usr/local/lib/tex/fonts/tfm" /* #define TEXFONTS "" */
#define TEXFORMATS ".:/usr/local/lib/tex/formats" /* #define TEXFORMATS "/usr/local/lib/tex/formats" */
#define TEXINPUTS ".:/usr/local/lib/tex/inputs" /* #define TEXINPUTS "." */
#define TEXPOOL "/usr/local/lib/tex" /* #define TEXPOOL "/usr/local/lib/tex" */
#define MFBASES ".:/usr/local/lib/mf/bases" /* #define MFBASES "/usr/local/lib/mf/bases" */
#define MFINPUTS ".:/usr/local/lib/mf/inputs" /* #define MFINPUTS ".:/usr/local/lib/mf/macros" */
#define MFPOOL "/usr/local/lib/mf" /* #define MFPOOL "/usr/local/lib/mf" */
#define VFFONTS ".:/usr/local/lib/tex/fonts/vf" /* #define VFFONTS "/usr/local/lib/tex/fonts/vf" */
/* Define this if you want subdirectories of directories in the search
paths to be searched. (See discussion in ./README.WEB2C of directory
hierarchies.) */
#ifndef SEARCH_SUBDIRECTORIES
#undef SEARCH_SUBDIRECTORIES
#endif
/* If SEARCH_SUBDIRECTORIES is defined, these symbols define paths in
which to look for subdirectories. The directories in TEXFONTS and
the like, above, are not searched for subdirectories. The
directories named here are not themselves searched for files. Not
all of the symbols here need be defined. If you don't want to define
a default directory, but want users to be able to define the
environment variables, define the symbol to be the empty string. */
#ifdef SEARCH_SUBDIRECTORIES
#define TEXFONTS_SUBDIR "/usr/local/lib/tex/fonts/tfm"
#define TEXINPUTS_SUBDIR "/usr/local/lib/tex/inputs"
#define MFINPUTS_SUBDIR "/usr/local/lib/mf/inputs"
#endif
/* BibTeX search path for .bib files. BibTeX uses TEXINPUTS to search
for .bst files. */
#define BIBINPUTS ".:/usr/local/lib/tex/bib"
/* Metafont window support: More than one may be defined, as long as you
don't try to have both X10 and X11 support (because there are
conflicting routine names in the libraries). After you've defined
these, make sure to update the top-level Makefile accordingly. Also,
if you want X11 support, see the `Online output from Metafont'
section in ./README before compiling. */
#undef HP2627WIN /* HP 2627. */
#undef SUNWIN /* SunWindows. */
#undef TEKTRONIXWIN /* Tektronix 4014. */
#undef UNITERMWIN /* Uniterm Tektronix. */
#undef X10WIN /* X Version 10. */
#define X11WIN /* X Version 11. */
#define HAVE_GETWD
#define SPRINTF_RETURN_TYPE int
#if defined(X10WIN) && defined(X11WIN)
sorry
#endif
/* Define this to be the return type of your signal handlers. POSIX
says it should be `void', but some older systems want `int'. Check
your <signal.h> include file if you're not sure. */
#ifndef SIGNAL_HANDLER_RETURN_TYPE
#define SIGNAL_HANDLER_RETURN_TYPE void
#endif
/* The type `glueratio' should be a floating point type which won't
unnecessarily increase the size of the memoryword structure. This is
the basic requirement. On most machines, if you're building a
normal-sized TeX, then glueratio must probably meet the following
restriction: sizeof(glueratio) <= sizeof(integer). Usually, then,
glueratio must be `float'. But if you build a big TeX, you can (on
most machines) and should make it `double' to avoid loss of precision
and conversions to and from double during calculations. (All this
also goes for Metafont.) Furthermore, if you have enough memory, it
won't hurt to have this defined to be `double' for running the
trip/trap tests. */
typedef double glueratio;
/* Define this if you want TeX to be compiled with local variables
declared as `register'. On SunOS 3.2 and 3.4 (at least), compiling
with cc, this will cause problems. If you're using gcc or the SunOS
4.x compiler, and compiling with -O, register declarations are
ignored, so there is no point in defining this. */
#ifndef REGFIX
#undef REGFIX
#endif
/* The type `schar' should be defined here to be the smallest signed
type available. If your char type is unsigned, then define schar to
be the type `short'. */
#ifdef AIX
typedef int schar;
#else
#ifdef ANSI
typedef signed char schar;
#else
typedef signed char schar;
#endif /* not ANSI */
#endif /* not AIX */
/* If you want to be able to produce a core dump (to make a preloaded
TeX) by giving the filename `HackyInputFileNameForCoreDump.tex' to
TeX (or Metafont), define this. Probably works only for BSD-like
systems. */
#ifndef FUNNY_CORE_DUMP
#undef FUNNY_CORE_DUMP
#endif
/* If the type `int' is at least 32 bits (including a sign bit), this
symbol should be #undef'd; otherwise, it should be #define'd. If
your compiler uses 16-bit int's, arrays larger than 32K may give you
problems, especially if indices are automatically cast to int's. */
#ifndef SIXTEENBIT
#undef SIXTEENBIT
#endif
/* Our character set is 8-bit ASCII unless NONASCII is defined. For
other character sets, make sure that first_text_char and
last_text_char are defined correctly (they're 0 and 255,
respectively, by default). In the *.defines files, change the
indicated range of type `char' to be the same as
first_text_char..last_text_char, `#define NONASCII', and retangle and
recompile everything. */
#ifndef NONASCII
#undef NONASCII
#endif
/* The type `integer' must be a signed integer capable of holding at
least the range of numbers (-2^31)..(2^32-1). The ANSI C standard
says that `long' meets this requirement, but if you don't have an
ANSI C compiler, you might have to change this definition. */
typedef long integer;
/* You need not worry about the definitions in `defaults.h' unless
something goes wrong. */
#include "defaults.h"
#endif /* not __WEB2C_SITE_H */
----------------------------- site.h ends --------------------
9) Then I created small script mypaths in /usr/distribution/TeX3.14:
---------------------- start my paths -------------
#!/bin/csh
set bl=/usr/local/bin
set ll=/usr/local/lib
set tl=$ll/tex
set ml=$ll/mf
set wl=`pwd`
set fl=$tl/fonts/tfm
set dl=($bl $ll $tl $tl/formats $tl/fonts \
$tl/fonts/tfm $tl/inputs \
$tl/bib $ml $ml/bases $ml/inputs)
set path=($path .)
--------------------- end mypaths ------------
10) I did:
chmod 755 mypaths
source mypaths
chmod 755 $dl
chgrp sys $dl
chown bin $dl
cp $wl/TeXfonts/* $fl
11) Then I edited Install_INPUTS from ./TeX3.14 to be:
---------------- Install_INPUTS -----------
#!/bin/sh
#
# This script is ./TeX3.14/Install_INPUTS.
#
# Look at the destination directories for
# TEXINPUTS, BIBINPUTS, and MFINPUTS below.
# Make sure that they are defined correctly,
# matching up with your definitions in site.h.
#
# If you are certain that you will not be using BibTeX or LaTeX
# or whatever else, you may comment out the lines concerned
# by preceding them with a hash mark (#); but keep in mind that
# you will need LaTeX if you wish to print out the manual for
# the PostScript printer driver (in ./DVIware/laser-setters/dvi-to-ps/TeXPS).
#
#
TEXINPUTS=/usr/local/lib/tex/inputs; export TEXINPUTS
BIBINPUTS=/usr/local/lib/tex/bib; export BIBINPUTS
MFINPUTS=/usr/local/lib/mf/inputs; export MFINPUTS
chmod 666 $TEXINPUTS/*.tex
chmod 666 $TEXINPUTS/*.sty
# chmod 666 $TEXINPUTS/*.def #not needed in this distribution
chmod 666 $TEXINPUTS/*.bst
chmod 666 $TEXINPUTS/*.bbl
chmod 666 $TEXINPUTS/*.aux
chmod 666 $BIBINPUTS/*.bib
find $MFINPUTS -name '*.mf' -exec chmod 666 {} \;
# chmod 666 $MFINPUTS/*.mf
cp ./TeXmacros/*.tex $TEXINPUTS/.
cp ./TeXmacros/*.sty $TEXINPUTS/.
cp ./MFtexfiles/*.mft $TEXINPUTS/.
cp ./LaTeX/*.tex $TEXINPUTS/.
cp ./LaTeX/LaTeXmacros/*.tex $TEXINPUTS/.
cp ./LaTeX/LaTeXmacros/*.sty $TEXINPUTS/.
cp ./LaTeX/LaTeXmakeindex/lib/*.tex $TEXINPUTS/.
cp ./LaTeX/LaTeXmakeindex/lib/*.sty $TEXINPUTS/.
cp ./LaTeX/LaTeXmakeindex/paper/*.tex $TEXINPUTS/.
cp ./LaTeX/LaTeXmakeindex/paper/*.sty $TEXINPUTS/.
cp ./LaTeX/LaTeXmakeindex/paper/*.bbl $TEXINPUTS/.
cp ./LaTeX/LaTeXslitex/*.tex $TEXINPUTS/.
cp ./LaTeX/LaTeXslitex/*.sty $TEXINPUTS/.
cp ./BibTeX.inputs/*.tex $TEXINPUTS/.
cp ./BibTeX.inputs/*.sty $TEXINPUTS/.
cp ./BibTeX.inputs/*.bst $TEXINPUTS/.
cp ./BibTeX.inputs/*.bbl $TEXINPUTS/.
cp ./BibTeX.inputs/*.aux $TEXINPUTS/.
cp ./BibTeX.inputs/*.bib $BIBINPUTS/.
cp ../cmfonts/mf/*.mf $MFINPUTS/.
cp ../LaTeXfonts/mf/*.mf $MFINPUTS/.
cp ../utilityfonts/bases/*.mf $MFINPUTS/.
cp ../utilityfonts/black/*.mf $MFINPUTS/.
cp ../utilityfonts/gray/*.mf $MFINPUTS/.
cp ../utilityfonts/half/*.mf $MFINPUTS/.
cp ../utilityfonts/logo/*.mf $MFINPUTS/.
cp ../utilityfonts/manualfonts/*.mf $MFINPUTS/.
cp ../utilityfonts/mfbook/*.mf $MFINPUTS/.
cp ../utilityfonts/slant/*.mf $MFINPUTS/.
(cd $TEXINPUTS; chmod 444 *)
------------------------ end Install_INPUTS -------------
12) Then I did:
sh -x Install_INPUTS
13) cp /usr/distribution/modes.mf /usr/local/lib/mf/modes.mf
14) Then I edited /usr/local/lib/mf/inputs/modes.mf (which was copied above)
to set localfont (few lines from the end of the file) to be
localfont := laserwriter;
since we are using Texas Inst. Omnilaser here most of the time.
15) Then, in /usr/distribution/TeX3.14 I did
make
make install
make formats
make install-formats
make bases
make install-bases
make manpages
make install-manpages
If you have Documenters Workbench (i.e., nroff) you are O.K.
I do not have it, so I have processed each manpage from /usr/local/man/manl
nroff -man manpage.l | compress > manpage.Z
on the SUN and then put them into /usr/man/u_man/manl.
This concluded instalation of TeX, LaTeX, Metafont, etc.
=================== makeindex =========================
makeindex installation:
There is a makeindex program which does indexes from *.idx files produced
by LaTeX.
I went to /usr/distribution/TeX3.14/LaTeX/LaTeXmakeindex/src.
mv makefile Makefile
edited a single line in Makefile by adding -g flag to CFLAGS
make makeindex
cp makeindex /usr/local/bin
cd ../doc
zcat makeindex.l.Z > /usr/local/man/man1/makeindex.l
mkdir /usr/local/lib/tex/doc/makeindex
cp makeindex.aux /usr/local/lib/tex/doc/makeindex
cp makeindex.tex /usr/local/lib/tex/doc/makeindex
cd ../paper
mkdir /usr/local/lib/tex/doc/makeindex/paper
cp * /usr/local/lib/tex/doc/makeindex/paper
cd ../test
mkdir /usr/local/lib/tex/doc/makeindex/test
cp * /usr/local/lib/tex/doc/makeindex/test
======================== detex =====================
this program removes TeX constructions from the file (good for spell)
and leaves text.
cd /usr/distribution/TeX3.14/TeXcontrib/trinkle
make detex
cp detex /usr/local/bin
cp detex.1l /usr/local/man/man1
====================== tgrind ========================
tgrind prints nicely programs and shell scripts in TeX.
I went to /usr/distribution/TeX3.14/TeXcontrib/van/tgrind/SYS_V
and made the following corrections in Makefile
DESTDIR=/usr/local/bin
DEFSFILE=/usr/local/lib/tex/inputs/vgrindefs #at the top
TEXINPUTS=/usr/local/lib/tex/inputs
install: all
cp tfontedpr ${DESTDIR}
cp tgrind.sh ${DESTDIR}/tgrind
cp tgrindmac.tex ${TEXINPUTS}/tgrindmac.tex #at the bottom
cp vgrindefs.src ${DEFSFILE}
an also corrected paths in tgrind.sh:
b=/usr/local/bin/tfontedpr
tex=/usr/local/bin/tex
then did:
make
make install
=========================== XDVI =======================
This is a dvi previewer for X. Works fine, but has some
peculiar bug -- magnifying glass (only magnyfing glass)
skips the first letter of the paragraph...
Now, how I did it:
1. Go to directory:
/usr/distribution/DVIware/crt-viewers/X/xdvi
2. Edit Makefile to be:
----------- Makefile for XDVI starts ----------
#
# Makefile for dvi previewer.
#
# $Header: Makefile,v 1.2 87/05/14 14:05:34 eichin Locked $
# $Source: /u1/uus/vs2/xdvi/RCS/Makefile,v $
#
DEFAULT_FONT_PATH=.:/usr/local/lib/tex/fonts/pk/laserwriter:/usr/local/lib/tex/fonts
DEFAULT_FONT_SIZES=300:328.6:360:432:518.4:622:746.4
DEFAULT_SUBDIR_PATH='**'
DEFS=-DMSBITFIRST -DBMSHORT -DBUTTONS
FONTDEFINES=-DDEFAULT_FONT_PATH=\"$(DEFAULT_FONT_PATH)\" \
-DDEFAULT_FONT_SIZES=\"$(DEFAULT_FONT_SIZES)\" \
-DDEFAULT_SUBDIR_PATH=\"$(DEFAULT_SUBDIR_PATH)\"
FONTFORMATS_C=pk.c gf.c pxl.c
FONTFORMATS_O=pk.o gf.o pxl.o
TOP=/usr
INCDIR=$(TOP)/include/X11
LIBDIR=$(TOP)/lib
XMULIB=-lXmu
EXTENSIONLIB=-lXext
DESTDIR=/usr/local
BINDIR=$(DESTDIR)/bin
MANDIR=$(DESTDIR)/man/man1
INCLUDES=-I$(INCDIR)
CFLAGS=-O $(INCLUDES) $(DEFS)
LIBS=-L$(LIBDIR) -lXaw $(XMULIB) -lXt $(EXTENSIONLIB) -lX11 -lm
#LIBS=-L$(LIBDIR) -lX11 -lm
SRCS=xdvi.c dvi_init.c dvi_draw.c $(FONTFORMATS_C) pxl_open.c tpic.c
OBJS=xdvi.o dvi_init.o dvi_draw.o $(FONTFORMATS_O) pxl_open.o tpic.o
CC=cc
RM=rm -f
.c.o:
$(CC) -c $(CFLAGS) $*.c
xdvi: $(OBJS)
$(CC) -o xdvi $(OBJS) $(LIBS)
chmod go+rx xdvi
xdvi.o: xdvi.h patchlevel.h xdvi.icon
dvi_init.o:xdvi.h dvi.h
dvi_draw.o:xdvi.h dvi.h
tpic.o: xdvi.h
gf.o: xdvi.h
pk.o: xdvi.h
pxl.o: xdvi.h
pxl_open.o: pxl_open.c xdvi.h
$(CC) -c $(CFLAGS) $(FONTDEFINES) pxl_open.c
xdvi.man: xdvi_man.sed mksedscript
chmod u+x mksedscript
./mksedscript $(DEFAULT_FONT_PATH) $(DEFAULT_FONT_SIZES) $(DEFS) \
> sedscript
sed -f sedscript < xdvi_man.sed > xdvi.man
install: xdvi xdvi.man
cp xdvi $(BINDIR)
cp xdvi.man $(MANDIR)/xdvi.1
chmod 644 $(MANDIR)/xdv
clean:
$(RM) *.o *.BAK *.CKP sedscript xdvi.man xdvi a.out core errs *~
lint:
lint $(INCLUDES) $(DEFS) $(FONTDEFINES) $(SRCS) -lm
------------------- end of Makefile for XDVI ----------------
3. make xdvi
4. make install
And you should be running
=========================== DVIPS ======================
1. cd /usr/distribution/dvips
2. Then I modified the Makefile to be:
---------------------- Makefile starts -----------
#
# Makefile for dvips
#
# If you are compiling dvips for suid or other privileges, you will
# definitely want to define the following symbol; else don't.
# SECURE = -DSECURE
# If you want EMTEX specials, define the following.
# EMTEX = -DEMTEX
# for SYSV (and friends which use <string.h> instead of <strings.h>)
# define the c-compiler flag
# add -D_POSIX_SOURCE if you are POSIX (also define SYSV) (only relevant
# for subdir searching)
# SYS = -DSYSV
SYS = -DSYSV
# Define this to be whatever you use for installation. If you don't have
# install, use a script that invokes copy and chmod's the files
# appropriately.
# INSTALL = install
INSTALL = /usr/distribution/dvips/instaldvips
# the default paper format, if other than letter.
# DEFPFMT = -DDEFPFMT=\"a4\"
DEFPFMT =
# where the installed binary goes
# BINDIR = /usr/local/bin
BINDIR = /usr/local/bin
# where the TFM files go
# TFMDIR = /usr/local/lib/tex/fonts/tfm
TFMDIR = /usr/local/lib/tex/fonts/tfm
# the default path to search for TFM files
# (this usually is identical to TeX's defaultfontpath, which omits `.')
# (private fonts are given an explicit directory, which overrides the path)
# TFMPATH = /LocalLibrary/Fonts/TeXFonts/tfm:$(TFMDIR)
TFMPATH = $(TFMDIR)
# where the PK files go.
# PKDIR = /usr/local/lib/tex/fonts/pk
PKDIR = /usr/local/lib/tex/fonts/pk
# the default path to search for PK files (usually omits `.')
# Don't forget to add the directory that
# MakeTeXPK puts the files! (In this case, /LocalLibrary/Fonts...)
# PKPATH = /LocalLibrary/Fonts/TeXFonts/pk:$(PKDIR)
PKPATH = $(PKDIR)
# where the VF files go
# VFDIR = /usr/local/lib/tex/fonts/vf
VFDIR = /usr/local/lib/tex/fonts/vf
# the default path to search for VF files (usually omits `.')
# VFPATH = /LocalLibrary/Fonts/TeXFonts/vf:$(VFDIR)
VFPATH = $(VFDIR)
# additional directories in which to search for subdirectories to find
# both tfm and pk files
FONTSUBDIRPATH =
# where the config files go
# CONFIGDIR = /usr/local/lib/tex/ps
CONFIGDIR = /usr/local/lib/tex/ps
# the default path to search for config files
# CONFIGPATH = .:$(CONFIGDIR)
CONFIGPATH = .:$(CONFIGDIR)
# the name of your config file
# CONFIGFILE = config.ps
CONFIGFILE = config.ps
# where the header PS files go
# HEADERDIR = /usr/local/lib/tex/ps
HEADERDIR = /usr/local/lib/tex/ps
# the default path to search for header files
# HEADERPATH = .:$(HEADERDIR)
HEADERPATH = .:$(HEADERDIR)
# where epsf.tex and rotate.tex go (usually the TeX macros directory)
# TEXMACRODIR = /usr/local/lib/tex/inputs
TEXMACRODIR = /usr/local/lib/tex/inputs
# the default path to search for epsf and psfiles
# (usually the same as TeX's defaultinputpath)
# FIGPATH = .:..:/usr/local/lib/tex/inputs
FIGPATH = .:..:/usr/local/lib/tex/inputs
# where the manual page goes
#MANDIR = /usr/local/man/man1
MANEXT = 1
#MANDIR = /usr/local/man/man$(MANEXT)
# add -DDEBUG to turn on debugging capability
# add -DTPIC for tpic support
# if the default resolution is not 300 dpi,
# add -DDEFRES=400 or whatever is required
# add -DFONTLIB to search font libraries
# add -DSEARCH_SUBDIRECTORIES to search the FONTSUBDIRPATH.
# add -DHAVE_GETCWD if you have getcwd (relevant only for subdir searching)
DEFS= -DTPIC -DDEBUG
# either use
# OPT = -g -Wall
# or
OPT = -O -s
# libraries to include (-lm -lc on most systems)
#FLIBS= -lNeXT_s -lsys_s
FLIBS= -lm
PATHS = -DTFMPATH=\"$(TFMPATH)\" \
-DPKPATH=\"$(PKPATH)\" \
-DVFPATH=\"$(VFPATH)\" \
-DHEADERPATH=\"$(HEADERPATH)\" \
-DCONFIGPATH=\"$(CONFIGPATH)\" \
-DCONFIGFILE=\"$(CONFIGFILE)\" \
-DFONTSUBDIRPATH=\"$(FONTSUBDIRPATH)\" \
-DFIGPATH=\"$(FIGPATH)\"
CFLAGS = $(DEFS) $(PATHS) $(OPT) $(SYS) $(SECURE) $(EMTEX) $(DEFPFMT)
SRC = dospecial.c dviinput.c fontdef.c loadfont.c dvips.c tfmload.c \
download.c prescan.c scanpage.c skippage.c output.c scalewidth.c \
dosection.c dopage.c resident.c search.c unpack.c drawPS.c \
header.c makefont.c repack.c virtualfont.c dpicheck.c finclude.c \
flib.c
OBJ = dospecial.o dviinput.o fontdef.o loadfont.o dvips.o tfmload.o \
download.o prescan.o scanpage.o skippage.o output.o scalewidth.o \
dosection.o dopage.o resident.o search.o unpack.o drawPS.o \
header.o makefont.o repack.o virtualfont.o dpicheck.o finclude.o \
flib.o
# files required to make a distribution
CONFIGFILES = config.ps psfonts.map
HEADERFILES = tex.lpro texc.script texps.lpro special.lpro finclude.lpro
FILES = $(CONFIGFILES) $(HEADERFILES) $(SRC) \
Makefile INSTALLATION README rotsample.tex AGaramond-Demo.pfb \
MakeTeXPK ../afm/Makefile epsf.tex epsf.sty rotate.tex rotate.sty \
dvips.1 paths.h debug.h structures.h squeeze.c afm2tfm.c afm2tfm.1
all : afm2tfm dvips tex.pro texps.pro texc.pro special.pro finclude.pro
dvips : $(OBJ)
$(CC) $(CFLAGS) $(OBJ) $(LIBS) $(FLIBS) -o dvips
afm2tfm: afm2tfm.c
$(CC) $(CFLAGS) -o afm2tfm afm2tfm.c $(LIBS) $(FLIBS)
$(OBJ) : structures.h debug.h Makefile
flib.o resident.o dvips.o loadfont.o tfmload.o : paths.h
squeeze : squeeze.o
$(CC) $(CFLAGS) squeeze.o -o squeeze $(LIBS) $(FLIBS)
tex.pro : tex.lpro squeeze
./squeeze <tex.lpro > tex.pro
texc.pro: texc.lpro squeeze
./squeeze <texc.lpro >texc.pro
texc.lpro: texc.script tex.lpro
./texc.script tex.lpro texc.lpro
texps.pro : texps.lpro squeeze
./squeeze <texps.lpro >texps.pro
special.pro : special.lpro squeeze
./squeeze <special.lpro >special.pro
finclude.pro : finclude.lpro squeeze
./squeeze <finclude.lpro >finclude.pro
install : afm2tfm dvips MakeTeXPK \
tex.pro texc.pro texps.pro special.pro finclude.pro \
config.ps psfonts.map epsf.tex epsf.sty rotate.tex rotate.sty \
dvips.1 afm2tfm.1
- mkdir $(BINDIR)
- mkdir $(HEADERDIR)
- mkdir $(CONFIGDIR)
- mkdir $(MANDIR)
- mkdir $(TEXMACRODIR)
$(INSTALL) -c -m 755 afm2tfm $(BINDIR)/afm2tfm
$(INSTALL) -c -m 755 dvips $(BINDIR)/dvips
$(INSTALL) -c -m 755 MakeTeXPK $(BINDIR)/MakeTeXPK
$(INSTALL) -c -m 644 tex.pro $(HEADERDIR)
$(INSTALL) -c -m 644 texc.pro $(HEADERDIR)
$(INSTALL) -c -m 644 texps.pro $(HEADERDIR)
$(INSTALL) -c -m 644 special.pro $(HEADERDIR)
$(INSTALL) -c -m 644 finclude.pro $(HEADERDIR)
$(INSTALL) -c -m 644 config.ps $(CONFIGDIR)/$(CONFIGFILE)
$(INSTALL) -c -m 644 psfonts.map $(CONFIGDIR)
$(INSTALL) -c -m 644 epsf.tex $(TEXMACRODIR)
$(INSTALL) -c -m 644 epsf.sty $(TEXMACRODIR)
$(INSTALL) -c -m 644 rotate.tex $(TEXMACRODIR)
$(INSTALL) -c -m 644 rotate.sty $(TEXMACRODIR)
-$(INSTALL) -c -m 644 dvips.1 $(MANDIR)/dvips.$(MANEXT)
-$(INSTALL) -c -m 644 afm2tfm.1 $(MANDIR)/afm2tfm.$(MANEXT)
veryclean :
rm -f *.o dvips squeeze afm2tfm texc.lpro *.pro *~ *.log *.dvi
clean :
rm -f *.o squeeze afm2tfm *~ *.log *.dvi
lint :
lint $(DEFS) $(PATHS) $(SRC)
lint $(DEFS) squeeze.c
lint $(DEFS) afm2tfm.c
---------------------- end of Makefile ---------------
3) Then I modified file config.ps to be:
-------------------config.ps starts -----------------
* This is /usr/local/lib/tex/ps/config.ps file. If want to modify settings
* copy it to $HOME/.dvipsrc and make changes. REMEMBER !!! once you have
* .dvipsrc in your $HOME, the contents of this config.ps file is overwritten
* by your * .dvipsrc !!!
*
* With a virtual machine, we can claim 1M of memory (i.e. m 1000000)
* which is true for NeXTprinter. For our OmniLaser it is 450000
*
m 450000
*
* And send output by default to a PostScript file.
*
*o !lpr
o
*
*
* This is our default printer OmniLaser, i.e. M is laserwriter
* For 400dpi NeXT printer change it to "M NeXTprinter"
M laserwriter
*
*
* Change this path for NeXTprinter to:
* P .:/usr/local/lib/tex/fonts/pk/NeXTPrinter
P .:/usr/local/lib/tex/fonts/pk/laserwriter
*
T .:/usr/local/lib/tex/fonts/tfm
*
* Default resolution. Change this to D 400 for NeXTprinter
D 300
*
* Last resort sizes.
*
R 100 120 144 300 360 400 432 480
-------------------------- config.ps ends ----------------
4) Then I modified file MakeTeXPK to be:
----------------------MakeTeXPK starts--------------------
#!/bin/sh
#
# This script file makes a new TeX PK font, because one wasn't
# found. Parameters are:
#
# name dpi bdpi magnification [mode]
#
# `name' is the name of the font, such as `cmr10'. `dpi' is
# the resolution the font is needed at. `bdpi' is the base
# resolution, useful for figuring out the mode to make the font
# in. `magnification' is a string to pass to MF as the
# magnification. `mode', if supplied, is the mode to use.
#
# Note that this file must execute Metafont, and then gftopk,
# and place the result in the correct location for the PostScript
# driver to find it subsequently. If this doesn't work, it will
# be evident because MF will be invoked over and over again.
#
# Of course, it needs to be set up for your site.
#
# TEMPDIR needs to be unique for each process because of the possibility
# of simultaneous processes running this script.
# DESTDIR=/LocalLibrary/Fonts/TeXFonts/pk
TEMPDIR=/tmp/mtpk.$$
NAME=$1
DPI=$2
BDPI=$3
MAG=$4
MODE=$5
umask 0
if test "$MODE" = ""
then
if test $BDPI = 300
then
MODE=laserwriter
elif test $BDPI = 400
then
MODE=NeXTprinter
elif test $BDPI = 100
then
MODE=nextscreen
elif test $BDPI = 635
then
MODE=linolo
elif test $BDPI = 1270
then
MODE=linohi
elif test $BDPI = 2540
then
MODE=linosuper
else
echo "I don't know the mode for $BDPI"
echo "Have your system admin update MakeTeXPK"
exit 1
fi
fi
# Something like the following is useful at some sites.
DESTDIR=/usr/local/lib/tex/fonts/pk/$MODE
GFNAME=$NAME.$DPI'gf'
PKNAME=$NAME.$DPI'pk'
# Clean up on normal or abnormal exit
trap "cd /; rm -rf $TEMPDIR $DESTDIR/pktmp.$$" 0 1 2 15
if test ! -d $DESTDIR
then
mkdir $DESTDIR
fi
mkdir $TEMPDIR
cd $TEMPDIR
if test -r $DESTDIR/$PKNAME
then
echo "$DESTDIR/$PKNAME already exists!"
exit 0
fi
# check also in the standard place
if test -r /usr/lib/tex/fonts/pk/$PKNAME
then
echo /usr/lib/tex/fonts/pk/$PKNAME already exists!
exit 0
fi
echo cmmf "\mode:=$MODE; mag:=$MAG; scrollmode; input $NAME" \\\</dev/null
cmmf "\mode:=$MODE; mag:=$MAG; scrollmode; input $NAME" </dev/null
if test ! -r $GFNAME
then
echo "Metafont failed for some reason on $GFNAME"
exit 1
fi
gftopk ./$GFNAME $PKNAME
# Install the PK file carefully, since others may be doing the same
# as us simultaneously.
chmod 644 $PKNAME
mv $PKNAME $DESTDIR/pktmp.$$
cd $DESTDIR
mv pktmp.$$ $PKNAME
#check also for tfm being in place
tfm=/usr/local/lib/tex/fonts/tfm/$NAME.tfm
if test -r $tfm
then
exit 0
else
chmod 644 $TEMPDIR/$NAME.tfm
mv $TEMPDIR/$NAME.tfm $tfm.$$
mv $tfm.$$ $tfm
fi
exit 0
---------------------------- end of MakeTeXPK -----------------
5) rehashed (I used csh as root)
6) Then I created missing cminch file by calling MakeTeXPK as:
MakeTeXPK cminch 300 300 magstep\(0\)
7) Then I created basis pk files in the following way:
ls /usr/local/lib/tex/fonts/tfm > makepkfiles
I edited this file so each line was calling MakeTeXPK with the font name.
That is, the line containing, e.g.:
cmr12.tmf
was changed to
MakeTeXPK cmr12 300 300 magstep\(0\)
chmod 755 makepkfiles
and finaly:
makepkfiles
It takes about 2 hours to generate fonts !
8) The virtual and PostScript Fonts. When you uncompressed and untarred
dvipsamf.tar.Z you will get directory ./afm, and from dvipslib.tar.Z
you get ./afm-extra, ./PStfms, and ./PSvfs.
The dvipsamf.tar.Z is actually what you need -- it containes scripts
to create virtual fonts (Yes, you need to print the dvips.tex to learn
more !). I used the scripts to check if they work. They did.
a) cd /usr/distribution/afm
b) edit Makefile by changing 2 lines at the very end:
mv *.tfm ../PStfms ----> mv *.tfm /usr/local/lib/tex/fonts/tfm
mv *.vf ../PSvfs ----> mv *.vf /usr/local/lib/tex/fonts/vf
c) create vf directory if you did not, i.e.:
mkdir /usr/local/lib/tex/fonts/vf
d) when you are in /usr/distribution/afm do:
make
make install
set junk=/usr/local/lib/tex/fonts/PStoVF_scripts
mkdir $junk
cp *.ed $junk
cp Makefile $junk
I saved the scripts, simply because they are nice, and you might need them
in the future
9) I saved various docs and README's in /usr/local/lib/tex/doc
Namely:
dvipsmac.tex & dvips.tex {macro and manual for dvips) in ./dvips
MFdoc directory under ./MF, etc.
10) Then I did:
cd /usr/local/lib/tex/fonts
find . -type d -exec chmod a+rwx,u+t {} \;
find . -type f -exec chmod go-wx {} \;
This is moderately secure, the only risk is that people will store
a lot of junk in font directories and you will have to clean them
at times.